home *** CD-ROM | disk | FTP | other *** search
- ' ___________________________________________________________________________
- ' |*************************************************************************|
- ' |*|¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯|*|¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯|*|
- ' |*| Set TAB to 4 for best readable file layout. |*| Maxon Basic 3.00 |*|
- ' |*|______________________________________________|*|____________________|*|
- ' |*************************************************************************|
- ' |*|¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯|*|¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯|*|
- ' |*| |*| $Id: settings.bc (28.04.01) |*|
- ' |*| ###### ###### |*| RhoSigma Source based on NDK 3.1 Includes 40.15 |*|
- ' |*| ## ## ## # |*| _________________________________________________ |*|
- ' |*| ## ## ## |*| |*|
- ' |*| ###### ## |*| Useful defines and extensions for NDK includes |*|
- ' |*| ## ## |*| |*|
- ' |*| ## ## # |*| ¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯ |*|
- ' |*| ## ###### |*| Copyright © 1998-2001 RhoSigma, Roland Heyder |*|
- ' |*| |*| All Rights Reserved. |*|
- ' |*|_______________|*|___________________________________________________|*|
- ' |*************************************************************************|
- ' ¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯
-
- '$UNDERLINES
-
- '** enhanced booleans **
-
- CONST UPPER% = 1 'Signum- und Wahrheitswerte zur
- CONST EQUAL% = 0 'Verwendung in Variablen des
- CONST LOWER% = -1 'Typs BOOL
- CONST FALSE% = 0
- CONST TRUE% = -1
-
- '** intuition **
-
- CONST DATPOS_C% = -1 'Text zentrieren
- CONST DATPOS_L% = -2 'Text linksbündig
- CONST DATPOS_R% = -3 'Text rechtsbündig
-
- '*** rhosigma / DATEXT() ***
- '============================================================================
- ' Diese Routine erstellt einen Teilstring des Parameterstrings der Intuition-
- ' Routine »DisplayAlert()«. Wahlweise kann der Text automatisch zentriert,
- ' oder links- bzw. rechsbündig ausgerichtet werden.
- '----------------------------------------------------------------------------
- ' Definiert: settings.bc (Copyright © 1998-2001 RhoSigma, Roland Heyder)
- '
- ' Schablone: xPos%/A/N, yPos%/A/N, Text$/A, EndFlag%/N/S
- '
- ' Parameter: xPos% --> x-Position des Textes,
- ' oder einer der oben definierten DATPOS-Werte
- '
- ' yPos% --> y-Position des Textes,
- ' Ausrichtung nach BaseLine des Fonts (topaz/8)
- '
- ' Text$ --> der Text selbst als Variable oder Konstante
- '
- ' EndFlag% --> - TRUE% , dann endet hier der Parameterstring
- ' - FALSE%, dann MUSS noch ein weiterer Teilstring
- ' (SUB-Aufruf) folgen.
- '
- ' Bemerkung: Nach Aufruf der Routine für alle einzelnen Teilstrings finden
- ' Sie den fertigen Parameterstring in der Variable »Alert$«,
- ' welche Sie an »DisplayAlert()« mittels »SADD(Alert$)« über-
- ' geben müssen.
- '
- ' Ein Beispiel für die Benutzung dieser Routine finden Sie in der
- ' Datei »demo/AlertDemo.BAS«.
- '
- ' ACHTUNG: Sie dürfen in Ihrem Programm keine eigene Stringvariable mit
- ' ¯¯¯¯¯¯¯¯ dem Namen »Alert$« verwenden, da diese unweigerlich durch
- ' dieses Unterprogramm überschrieben werden würde.
- '
- ' Außerdem müssen Sie den Parameterstring immer unmittelbar vor
- ' dem »DisplayAlert()«-Aufruf definieren, da die Variable »Alert$«
- ' jedesmal wieder überschrieben wird, und daher immer nur den zu-
- ' letzt erstellten Parameterstring enthält.
- '============================================================================
-
- SUB DATEXT(xPos%,yPos%,Text$,EndFlag%) STATIC
- SHARED Alert$
- STATIC lFlag%
-
- IF lFlag%<>FALSE% THEN ' wird ein neuer ParamString angefangen,
- lFlag%=FALSE% ' dann »Alert$« erst zurücksetzen
- Alert$=""
- ELSE
- lFlag%=EndFlag%
- END IF
-
- IF xPos%=DATPOS_C% THEN ' gewünschte Ausrichtung,
- xPos%=(640-(LEN(Text$)*8))/2 ' falls angegeben
- ELSEIF xPos%=DATPOS_L% THEN
- xPos%=12
- ELSEIF xPos%=DATPOS_R% THEN
- xPos%=(640-(LEN(Text$)*8))-12
- END IF
- IF LEN(Text$)/2=INT(LEN(Text$)/2) THEN Text$=Text$+CHR$(32) 'für OS 1.3
-
- Alert$=Alert$+MKI$(xPos%)+CHR$(yPos%)+Text$+CHR$(0) ' alles erstellen
-
- IF EndFlag%=FALSE% THEN ' wenn kein END-Flag, dann Continue-Byte
- Alert$=Alert$+CHR$(1) ' setzen, ansonsten 0-Byte und Adresse
- ELSE ' auf gerade setzen
- Alert$=Alert$+CHR$(0)
- WHILE SADD(Alert$) AND 1
- Alert$=Alert$+CHR$(0)
- WEND
- END IF
-
- END SUB
-